{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd \n",
    "import numpy as np\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "#竞赛的评价指标为logloss\n",
    "from sklearn.metrics import log_loss  \n",
    "\n",
    "#SVM并不能直接输出各类的概率，所以在这个例子中我们用正确率作为模型预测性能的度量\n",
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "from matplotlib import pyplot\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train = pd.read_csv(\"FE_pima-indians-diabetes.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "y_train = train['Target']   \n",
    "X_train = train.drop([\"Target\"], axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.766927083333\n",
      "{'C': 0.01}\n"
     ]
    }
   ],
   "source": [
    "from sklearn.svm import SVC\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "\n",
    "Cs = [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "param_grid = {'C': Cs}\n",
    "grid = GridSearchCV(SVC(kernel='linear'), param_grid, cv=5, n_jobs = 4)\n",
    "\n",
    "grid.fit(X_train, y_train)\n",
    "print(grid.best_score_)\n",
    "print(grid.best_params_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise',\n",
       "       estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n",
       "  decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',\n",
       "  max_iter=-1, probability=False, random_state=None, shrinking=True,\n",
       "  tol=0.001, verbose=False),\n",
       "       fit_params=None, iid=True, n_jobs=4,\n",
       "       param_grid={'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000], 'gamma': [0.0001, 0.001, 0.01, 0.1, 1]},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score=True,\n",
       "       scoring=None, verbose=0)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "### RBF核SVM正则参数调优\n",
    "\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "Cs = [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "gammas = [0.0001,0.001, 0.01, 0.1, 1]\n",
    "#gammas =[1e-5, 1e-6]\n",
    "param_grid = {'C': Cs, 'gamma' : gammas}\n",
    "grid = GridSearchCV(SVC(kernel='rbf'), param_grid, cv=5, n_jobs = 4)\n",
    "\n",
    "grid.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.768229166667\n",
      "{'C': 100, 'gamma': 0.001}\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nV/ubrwNFd97yQAMjFxfdbdx1kJv/tYKhfbvxj59Y0Z3pXMKWLJwzgtuAd4FC4FVV3SAiD4jITGe3\nd4FyEdkILAXuUNVyVfURuAT1oYisI3BJ66lwxRqNqgoK0ChY4mPd3nVU11cfShZrlzp9tS85EdF6\np+huA1w+FwYccfLpGsUVVVz/zzy6d03gudnj6ZlsRXemcwnrCKCqLgYWN9l2T6P7CvzKuTV97vvA\nqHDGF8282TlIYiIpWS5f4qPEc6iFak1lHSuWbOM7pzh9tRfcCls/goseg8zzIh1qyAJFd/lU1/mY\nf+sUMnomB3+SMR3MKrijlDcnm5SsccQlu/uLJ7cklxG9R9Azqee3fbUvORE+ehDWzIOzfwtjr4l0\nmCGrqfNx4/MFbC+vsqI706lZsohCdaV7+OaLLa6/BFVVV8XasrVMzJjIgbLqb/tq73wFPn0ETrsO\nzrgj0mGGzOdX/uuV1eR/VcGjV4xmkhXdmU7MkkUUipYlPlaUrqBe65mUMYnchVsDfbVHFMHi22H4\ndPjBo64uunvwrY0sWb+b/75wJBeO6h/pkIw5JksWUcibk0N8794knXRSpENpE0+Jh8S4RAZWDWNL\nwR7GTIgn9Z3ZgdVjXV509+SyIp7L+Yo504bwUyu6My5gySLKqN+PNyeH1ClTkDh3/3g9uz2MSRtD\n/oLtJKfGMXbHTdCjf2CKbGJqpMML2cLVO/mfJZu4cFQGv5lhRXfGHdz9bWKO8M3mzfjKy10/XlFR\nU8GmfZsY/805gb7a3V4mMb42Korubn9tDZOG9uaRy0db0Z1xDfeex5tmfTte4e5k4dntQTSOxLz+\nJCWVMaLLW3D1Qug9NNKhhayw5CC3OEV3T/wky4rujKtYsogy3uxskjKH0aVfv7C/l8/vo7q++ohb\nVX3V4dvqmtnW5O+bbqvx1TB27zlUlytnHfcM8Zc/G1gg0KV27q/m+n/m0c2K7oxLWbKIIv6aGqoK\nVnDcrCsPbav31x/zC7rxl/ih+818eR+REOqqqPXXtiq+LnFdSE5IPuLWs2tPMhIyDj1OSUihqz+F\n+IKBpHXZwJDLroHh32/vf64Oc6CqjuuezaOq1sfrt1jRnXEnCRRRu19WVpYWFBS0+nlb1hTw8Z83\nhyGiCFBI8EN5D6hJDCzx29qfrjTcNDCg1fA4ztnW3OO4Fj6nNVfnfZpIta8Pycd/wLwe57fyKDqX\n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\nA3O8jwOYHuj+AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xc56c198>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(grid.best_score_)\n",
    "print(grid.best_params_)\n",
    "# plot CV误差曲线\n",
    "test_means = grid.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid.cv_results_[ 'std_test_score' ]\n",
    "# plot results\n",
    "n_Cs = len(Cs)\n",
    "number_gamms = len(gammas)\n",
    "test_scores =  np.array(test_means).reshape(n_Cs,number_gamms)\n",
    "#train_scores = np.array(train_means).reshape(n_Cs,number_penaltys)\n",
    "test_stds = np.array(test_stds).reshape(n_Cs,number_gamms)\n",
    "#train_stds = np.array(train_stds).reshape(n_Cs,number_penaltys)\n",
    "x_axis = np.log10(Cs)\n",
    "for i, value in enumerate(gammas):\n",
    "    pyplot.plot(x_axis, test_scores[:,i], label= gammas[i])    \n",
    "pyplot.legend()\n",
    "pyplot.xlabel( 'log(C)' )                                                                                                      \n",
    "pyplot.ylabel( 'accuary' )\n",
    "pyplot.savefig('SVMGridSearchCV_C.png' )\n",
    "pyplot.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
